A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
In some instances, these packets may be directed to a single destination device in a type of communication referred to as a “unicast” communication. Many applications make use of unicast communications, such as web browsers that communicate via the HyperText Transfer Protocol (HTTP). Unicast communications (or “unicasting”), however, may not be appropriate for all applications, especially those that deliver substantially the same content at substantially the same time to a plurality of destination devices, such as Internet Protocol Television (IPTV), web-conferencing, video conferencing, and other multi-user applications. For these multi-user applications, the use of unicast communications would require delivery of the same content multiple times, i.e., a separate transmission for each destination device, which would unnecessarily consume network bandwidth and strain server resources. As a result, a form of communication referred to as “multicast” communication or “multicasting” was developed to address this unnecessary consumption of network resources.
Multicasting may involve using network devices to replicate data packets for receipt by multiple recipients, thereby reducing the transmission burden on the sender and leading to potential scalability and more efficient packet delivery. A multicast source transmits multicast packets to a single address, known as the multicast group address. Recipients may request to “join” the multicast group in accordance with a protocol, such as the Internet Group Management Protocol (IGMP). If the request is granted, packets sent to the group address are replicated by the network devices of the network and forwarded to the address of the joined recipient, along with all other previously joined recipients. Because the network efficiently replicates multicast packets at these network devices, multicasting may reduce the redundant transmission that may occur when transmitting data for the above multi-user applications.
Within a service provider (SP) network, highly efficient delivery of multicast traffic for a multicast group may involve a multicast source-tree rooted at the PE router that is coupled to the customer edge (CE) router that serves the multicast source for the multicast group. This root PE router is referred to as the “ingress” router for the multicast traffic for the multicast group. Distribution techniques involving multicast source-trees in the SP network use core (P) routers to replicate and forward multicast packets, based on the multicast group address that is the packet destination address, to egress PE routers that are coupled to CE routers serving the various members of the multicast group. Consequently, highly efficient delivery may lead to forwarding state in the SP network core for a potentially unbounded number of multicast groups.
Conventional techniques to reduce forwarding state in the SP network core may rely on ingress replication. In ingress replication, the SP network uses unicast tunnels from the ingress PE router to each of the egress PE routers. Such unicast tunnels carry unicast traffic among PE routers of the SP network and may include Generic Routing Encapsulation (GRE) or IP-in-IP tunnels, as well as Multiprotocol Label Switching (MPLS)-based tunnels set up using a label distribution protocol (LDP) or Resource ReserVation Protocol with Traffic Engineering extensions (RSVP-TE). In some instances, the tunnels follow a shortest path tree rooted at the ingress PE router. The shortest path tree is a subgraph of the SP network topology in which the distance between the ingress PE router and any given egress PE router is minimized. The tunnels are established such that each tunnel has an ingress at the source from the root PE router and an egress at a respective PE router operating as a leaf node of the tree. The ingress PE router, i.e., the source PE router, encapsulates a copy of the multicast packet to form a unicast tunneled packet for each egress PE router for the multicast group and sends one of the tunneled packets to each of the egress PEs using the unicast tunnels. The receiving egress PE decapsulates the multicast packet and delivers the multicast packet to the customer network it serves. Ingress replication thus provides a “hub and spoke” solution to multicast replication to reduce the multicast-specific forwarding state in the SP network core.